﻿using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Control.conexion;

namespace Control.clases
{
    public class clsCategoria
    {
        private int idCategoria;
        private int categoriaDescripcion;

        public System.Data.DataTable listarCategoria()
        {
            clsConexion oDataBase = new clsConexion();
            try
            {
                DbCommand cmd = oDataBase.CargarComandoSP("USP_S_LISTAR_TB_CATEGORIA");
                return oDataBase.EjecutarConsulta(cmd);
            }
            catch (Exception ex)
            {
                throw new System.Exception(ex.Message, ex.InnerException);
            }
        }

        public System.Data.DataTable buscarCategoria(string _Id)
        {
            clsConexion oDataBase = new clsConexion();
            try
            {
                DbCommand cmd = oDataBase.CargarComandoSP("USP_S_BUSCAR_TB_CATEGORIA");
                oDataBase.AddParametro(cmd, "@id_categoria", _Id);

                return oDataBase.EjecutarConsulta(cmd);
            }
            catch (Exception ex)
            {
                throw new System.Exception(ex.Message, ex.InnerException);
            }
        }

        public int agregarCategoria(string _Descripcion)
        {
            try
            {
                clsConexion oDataBase = new clsConexion();
                int iReturn;
                DbCommand cmd = oDataBase.CargarComandoSP("USP_I_INSERTAR_TB_CATEGORIA"); // insertar SP_INSERTAR

                // Ingresar parametros
                oDataBase.AddParametro(cmd, "@tipo_categoria", _Descripcion);

                iReturn = oDataBase.EjecutarTransaccion(cmd);
                return iReturn;
            }
            catch (Exception ex)
            {
                throw new System.Exception(ex.Message, ex.InnerException);
            }
        }

        public int actualizarCategoria(string _Id, string _Descripcion)
        {
            try
            {
                clsConexion oDataBase = new clsConexion();
                int iReturn;
                DbCommand cmd = oDataBase.CargarComandoSP("USP_U_ACTUALIZAR_TB_CATEGORIA"); // insertar SP_INSERTAR

                // Ingresar parametros
                oDataBase.AddParametro(cmd, "@id_categoria", _Id);
                oDataBase.AddParametro(cmd, "@tipo_categoria", _Descripcion);

                iReturn = oDataBase.EjecutarTransaccion(cmd);
                return iReturn;
            }
            catch (Exception ex)
            {
                throw new System.Exception(ex.Message, ex.InnerException);
            }
        }

        public int eliminarCategoria(string _Id)
        {
            try
            {
                clsConexion oDataBase = new clsConexion();
                int iReturn;
                DbCommand cmd = oDataBase.CargarComandoSP("USP_D_ELIMINAR_TB_CATEGORIA"); // insertar SP_INSERTAR

                // Ingresar parametros
                oDataBase.AddParametro(cmd, "@id_categoria", _Id);

                iReturn = oDataBase.EjecutarTransaccion(cmd);
                return iReturn;
            }
            catch (Exception ex)
            {
                throw new System.Exception(ex.Message, ex.InnerException);
            }
        }
    }
}
